Information processing apparatus and non-transitory computer readable medium

ABSTRACT

An information processing apparatus includes a display, a setter, and a synchronization controller. The display displays a first document in a first window and also displays a second document in a second window. The setter sets a synchronization setting between the first and second documents. The synchronization controller executes an operation performed on one of the first and second documents also on the other one of the first and second documents when a synchronization setting is set by the setter, and cancels the synchronization setting when one of the first and second documents is in a first state in which it is not being used and restarts the synchronization setting when the corresponding one of the first and second documents is changed from the first state to a second state in which it is being used.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based on and claims priority under 35 USC 119 fromJapanese Patent Application No. 2017-208259 filed Oct. 27, 2017.

BACKGROUND (i) Technical Field

The present invention relates to an information processing apparatus anda non-transitory computer readable medium.

(ii) Related Art

Multi-window processing is known for displaying multiple windows on ascreen of a computer, for example, and executing operation in each ofthe multiple windows.

SUMMARY

According to an aspect of the invention, there is provided aninformation processing apparatus including a display, a setter, and asynchronization controller. The display displays a first document in afirst window and also displays a second document in a second window. Thesetter sets a synchronization setting between the first and seconddocuments. The synchronization controller executes an operationperformed on one of the first and second documents also on the other oneof the first and second documents when a synchronization setting is setby the setter, and cancels the synchronization setting when one of thefirst and second documents is in a first state in which it is not beingused and restarts the synchronization setting when the corresponding oneof the first and second documents is changed from the first state to asecond state in which it is being used.

BRIEF DESCRIPTION OF THE DRAWINGS

An exemplary embodiment of the present invention will be described indetail based on the following figures, wherein:

FIG. 1 is a block diagram illustrating the configuration of aninformation processing apparatus according to the exemplary embodiment;

FIG. 2 is a functional block diagram of a display module (viewer);

FIG. 3 illustrates a display example of a viewer;

FIG. 4 illustrates a display example of multiple viewers;

FIGS. 5 and 6 illustrate examples of synchronization setting screens;

FIG. 7 illustrates the relationship between multiple viewers;

FIG. 8 is a flowchart illustrating processing which forms the basis ofthe exemplary embodiment;

FIGS. 9A and 9B illustrate page-turning synchronize processing;

FIGS. 10A and 10B illustrate scrolling synchronize processing;

FIGS. 11A and 11B illustrate zoom-in synchronize processing;

FIGS. 12A through 13C illustrate examples of synchronization cancelprocessing when the document size is minimized;

FIGS. 14A through 15C illustrate examples of synchronization cancelprocessing when the display area is equal to or smaller than athreshold;

FIGS. 16A through 16C illustrate an example of synchronization cancelprocessing when one viewer is located behind the other viewer; and

FIG. 17 is a flowchart illustrating processing according to theexemplary embodiment.

DETAILED DESCRIPTION

An exemplary embodiment of the invention will be described below withreference to the accompanying drawings.

Exemplary Embodiment 1. Configuration 1.1 Overall Configuration

FIG. 1 is a block diagram illustrating the configuration of aninformation processing apparatus 10 according to the exemplaryembodiment. Examples of the information processing apparatus 10 are apersonal computer (PC), a smartphone, and a tablet terminal.

The information processing apparatus 10 includes a controller 12, anoperation unit 14, a display 16, a communication unit 18, and a storage20.

The controller 12 includes one or plural central processing units(CPUs), a read only memory (ROM), and a random access memory (RAM). TheCPU or the CPUs load a program from the ROM or the storage 20 to the RAMand execute it.

The operation unit 14 is a keyboard and a mouse or a touchscreen, forexample. A user performs operation by using the operation unit 14 andinputs information.

The display 16 is a liquid crystal display (LCD) or an organicelectroluminescence (EL) display, for example, and displays variousitems of information in response to an instruction from the controller12.

The communication unit 18 sends and receives data to and from anexternal server via a communication network, such as the Internet or alocal area network (LAN).

The storage 20 is a storage device, such as a flash memory, a hard diskdrive (HDD), or a solid-state drive (SSD). The storage 20 may be astorage device which is removable from the information processingapparatus 10, such as a memory card. The storage 20 stores documentmanagement software 22, such as DocuWorks (registered trademark). Thedocument management software 22 may be stored in the storage 20 as aresult of being stored in a storage medium, such as a digital versatiledisc (DVD)-ROM, or being downloaded from an external server by using thecommunication unit 18.

The CPU or the CPUs of the controller 12 execute various documentmanagement operations by reading the document management software 22from the storage 20 and by executing it. More specifically, thecontroller 12 first displays a digital desk on the display 16, and thendisplays and arranges documents (paper documents and digital documents)on the digital desk and executes viewing and editing on the documents.When a user selects a desired document from the documents displayed onthe digital desk, the controller 12 displays the selected document byusing a display module (viewer) 24 included in the document managementsoftware 22 on the display 16. The viewer 24 includes various tools forallowing a user to view and edit a document page by page.

1.2 Configuration of Display Module (Viewer)

FIG. 2 is a functional block diagram of the display module (viewer) 24.The viewer 24 includes a display controller 26, an operation controller28, a communication interpreter 30, an inter-process sender 32, and aninter-process receiver 34. These functional blocks are implemented as aresult of the CPU or the plural CPUs of the controller 12 executing aprocessing program. However, some of the functional blocks may beimplemented by hardware processing, instead of executing softwareprocessing using the processing program. The hardware processing may beexecuted by using a circuit, such as an application specific integratedcircuit (ASIC) or a field programmable gate array (EPGA).

The display controller 26, which serves as a display and a setter,controls a user interface of the display 16, and more specifically, adisplay mode of documents on the display 16.

The operation controller 28, which serves as a synchronizationcontroller, detects user operation performed by using the operation unit14. The operation controller 28 outputs an instruction based on thecontent of user operation to the display controller 26. The operationcontroller 28 also outputs an instruction based on the content ofoperation interpreted by the communication interpreter 30 to the displaycontroller 26. When a specific condition is satisfied, the operationcontroller 28 outputs the content of operation to the inter-processsender 32. The specific condition is a condition that a synchronizationsetting with another viewer has been set. When another specificcondition is satisfied, the operation controller 28 cancels asynchronization setting set with another viewer. This specific conditionis a condition that one of multiple viewers is in a state in which it isnot being used. However, after this specific condition is satisfied, ifthe state of this viewer is changed to a state in which it is being usedagain, the operation controller 28 restarts the synchronization settingwith this viewer.

The communication interpreter 30 interprets the content of operationreceived by the inter-process receiver 34, and outputs the interpretedcontent to the operation controller 28.

The inter-process sender 32, which serves as the synchronizationcontroller, outputs the content of operation received from the operationcontroller 28 to the inter-process receiver 34 of another viewer.

The inter-process receiver 34, which serves as the synchronizationcontroller, receives the content of operation from the inter-processsender 32 of another viewer and outputs it to the communicationinterpreter 30.

FIG. 3 illustrates an example of a document displayed on the display 16by the viewer 24. The viewer 24 functions as one window. At apredetermined position, such as the top portion of the viewer 24, adocument name (document-1) 241 of a currently displayed document, isdisplayed, and under the top portion, an operation menu 242 isdisplayed. The operation menu 242 includes menu items, such as file,edit, view, document, page, annotation, tool, and window. Under theoperation menu 242, icons 243 used for performing various operations aredisplayed. Under the icons 243, a display area for displaying a documentis provided. In the display area, a document 244 is displayed in aperspective display mode to indicate how thick the document 244 is.

Advantages of displaying the document 244 in the perspective displaymode are: a user can intuitively figure out how many pages the document244 has, easily select a desired page, and easily identify an annotation(note) attached to a specific page.

Instead of in the perspective display mode, the viewer 24 may displaythe document 244 in a continuous display mode in which the pages of thedocument 244 are displayed continuously. A user may choose in which oneof the modes the document 244 will be displayed.

The viewer 24 is opened for each document, and multiple viewers 24, thatis, multiple windows (multi-window), are opened at the same time so thatplural documents can be displayed together.

FIG. 4 illustrates a state in which two documents are displayed at thesame time on the display 16 as a result of opening two viewers 24.Viewers 24A and 24B are opened as the viewers 24, and differentdocuments are displayed in the perspective display mode. The viewer 24Aserves as a first window, while the viewer 24B serves as a secondwindow.

The viewers 24A and 24B can be operated independently of each other. Auser can make the viewer 24A or 24B active by selecting it with a mouse,for example, so as to perform a desired operation, such as scroll,zoom-in or zoom-out, copy, paste, cut, and delete operations, on thedocument displayed by the active viewer 24. These operations performedby using the active viewer 24 do not whatsoever influence the otherviewer 24, that is, the non-active viewer. For example, a user makes theviewer 24A active and scrolls through the document displayed by theviewer 24A, and this scroll operation does not whatsoever influence thenon-active viewer 24B.

On the other hand, however, some users may wish to synchronize thedocument displayed by the viewer 24A with that by the viewer 24B and toreflect the operation performed on one document in the other document.For example, two documents of different versions are displayed by theviewers 24A and 24B, and when a user scrolls through the document of anew version, this scroll operation is reflected in the document of anold version. This can save the user the trouble of scrolling through thecorresponding page of the document of the old version separately. Thismay be very convenient for the user when checking two documents againsteach other.

As the basis forming the exemplary embodiment, the two viewers 24A and24B are operated independently of each other in a default state, butthey can be operated in synchronization with each other in response toan instruction from a user.

Hereinafter, synchronize processing as the basis forming the exemplaryembodiment will be discussed below.

FIGS. 5 and 6 illustrate examples of setting screens for synchronizingoperations of the viewers 24 with each other. These setting screens aredisplayed by the display controller 26. When a user selects “Window”from the operation menu 242 shown in FIG. 3, a window operation menu 245is displayed. In FIG. 5, the window operation menu 245 includes menuitems “Align window right”, “Align window left”, and “Synchronizeoperation with another window”. If the user wishes to synchronizeoperations of multiple viewers 24 with each other, the user selects“Synchronize operation with another window”.

FIG. 6 illustrates a setting screen when “Synchronize operation withanother window” is selected. The screen for setting documents for whichoperations of the viewers 24 are synchronized with each other isdisplayed. A list of document names displayed by viewers 24 to besynchronized with each other is displayed. In FIG. 6, “document-1”,“document-2”, “document-3”, and “document-4” are displayed. If the userwishes to synchronize the document-1 and the document-2 with each other,the user can select them by checking the corresponding check boxes.

It is now assumed that the document-1 is displayed by the viewer 24A,while the document-2 is displayed by the viewer 24B, and the user sets asetting for synchronizing the document-1 and the document-2 with eachother.

FIG. 7 illustrates the relationship between the two viewers 24A and 24Bwhen a synchronization setting therebetween has been set.

The viewer 24A includes a display controller 26 a, an operationcontroller 28 a, a communication interpreter 30 a, an inter-processsender 32 a, and an inter-process receiver 34 a. Likewise, the viewer24B includes a display controller 26 b, an operation controller 28 b, acommunication interpreter 30 b, an inter-process sender 32 b, and aninter-process receiver 34 b. The relationship between the viewers 24Aand 24B concerning a synchronization setting set by a user is retainedin the operation controllers 28 a and 28 b as synchronizationinformation.

It is assumed that the viewer 24A is active and a user has performedoperation on the document-1 displayed by the viewer 24A. In accordancewith the operation performed by the user using the operation unit 14,the operation controller 28 a outputs an instruction to perform displaybased on the operation to the display controller 26 a. The operationcontroller 28 a also outputs the content of operation andsynchronization destination information to the inter-process sender 32 abased on the synchronization information. The inter-process sender 32 aidentifies the inter-process receiver 34 b of the viewer 24B based onthe synchronization destination information, and outputs the content ofoperation to the inter-process receiver 34 b.

Upon receiving the content of operation from the viewer 24A, theinter-process receiver 34 b of the viewer 24B outputs the receivedcontent of operation to the communication interpreter 30 b.

The communication interpreter 30 b interprets the content of operationand outputs the interpreted content of operation to the operationcontroller 28 b.

In accordance with the interpreted content of operation, the operationcontroller 28 b outputs an instruction to perform display based on thecontent of operation to the display controller 26 b.

The above-described synchronize processing will be explained morespecifically.

It is now assumed that a user scrolls through the document-1 by usingthe viewer 24A. The operation controller 28 a then outputs aninstruction to scroll through the document-1 in accordance with thescroll operation to the display controller 26 a. The display controller26 a displays the document-1 in accordance with the scroll operation inresponse to the instruction from the operation controller 28 a. Theoperation controller 28 a also outputs the content of scroll operationand synchronization destination information to the inter-process sender32 a based on the synchronization information. The inter-process sender32 a identifies the inter-process receiver 34 b of the viewer 24B basedon the synchronization destination information, and outputs the contentof scroll operation to the inter-process receiver 34 b.

Upon receiving the content of scroll operation from the viewer 24A, theinter-process receiver 34 b of the viewer 24B outputs it to thecommunication interpreter 30 b.

The communication interpreter 30 b interprets the content of scrolloperation and outputs the interpreted content to the operationcontroller 28 b.

In accordance with the interpreted content of scroll operation, theoperation controller 28 b outputs an instruction to display thedocument-2 in accordance with the content of scroll operation to thedisplay controller 26 b. The content of scroll operation sent from theinter-process sender 32 a to the inter-process receiver 34 b alsoindicates the amount and direction of scroll operation.

It is now assumed that a user zooms in on the document-1 displayed bythe viewer 24A. The operation controller 28 a then outputs aninstruction to zoom in on the document-1 in accordance with zoom-inoperation to the display controller 26 a. The display controller 26 adisplays the document-1 in an enlarged size in response to theinstruction from the operation controller 28 a. The operation controller28 a also outputs the content of zoom-in operation and synchronizationdestination information to the inter-process sender 32 a based on thesynchronization information. The inter-process sender 32 a identifiesthe inter-process receiver 34 b of the viewer 24B based on thesynchronization destination information, and outputs the content ofzoom-in operation to the inter-process receiver 34 b.

Upon receiving the content of zoom-in operation from the viewer 24A, theinter-process receiver 34 b of the viewer 24B outputs the receivedcontent of zoom-in operation to the communication interpreter 30 b.

The communication interpreter 30 b interprets the content of zoom-inoperation and outputs the interpreted content to the operationcontroller 28 b.

The operation controller 28 b outputs an instruction to display thedocument-2 in accordance with the interpreted content of zoom-inoperation to the display controller 26 b. The content of zoom-inoperation sent from the inter-process sender 32 a to the inter-processreceiver 34 b also indicates the magnification factor of zoom-inoperation.

It is now assumed that a user performs page-turning operation on thedocument-1 displayed by the viewer 24A. The operation controller 28 athen outputs an instruction to turn the pages of the document-1 inaccordance with page-turning operation to the display controller 26 a.The display controller 26 a displays the document-1 in response to thepage-turning instruction from the operation controller 28 a. Theoperation controller 28 a also outputs the content of page-turningoperation and synchronization destination information to theinter-process sender 32 a based on the synchronization information. Theinter-process sender 32 a identifies the inter-process receiver 34 b ofthe viewer 24B based on the synchronization destination information, andoutputs the content of page-turning operation to the inter-processreceiver 34 b.

Upon receiving the content of page-turning operation from the viewer24A, the inter-process receiver 34 b of the viewer 24B outputs thereceived content of page-turning operation to the communicationinterpreter 30 b.

The communication interpreter 30 b interprets the content ofpage-turning operation and outputs the interpreted content to theoperation controller 28 b.

The operation controller 28 b outputs an instruction to display thedocument-2 in accordance with the interpreted content of page-turningoperation to the display controller 26 b. The content of page-turningoperation sent from the inter-process sender 32 a to the inter-processreceiver 34 b also includes page-turning information.

Synchronize processing executed when the viewer 24A is active and theviewer 24B is not active has been discussed with reference to FIG. 7.When the viewer 24B is active and the viewer 24A is not active,synchronize processing is executed in a similar manner. In this case,the operation controller 28 b outputs the content of operation to theinter-process sender 32 b, and the inter-process sender 32 b outputs thecontent of operation to the inter-process receiver 34 a. Theinter-process receiver 34 a outputs the received content of operation tothe communication interpreter 30 a. The communication interpreter 30 ainterprets the content of operation and outputs it to the operationcontroller 28 a. The operation controller 28 a outputs an instruction todisplay the document-1 in accordance with the interpreted content ofoperation to the display controller 26 a. In FIG. 7, the long dasheddotted arrow indicates a flow of this process.

2. Synchronize Processing 2.1 Processing Forming the Basis of ExemplaryEmbodiment

FIG. 8 is a flowchart illustrating processing forming the basis of theexemplary embodiment. In synchronize processing shown in FIG. 8, theviewer 24A is active and the viewer 24B is not active.

In step S101, the operation controller 28 a judges whether a user hasperformed operation by using the operation unit 14.

If the user has performed operation (YES in step S101), the operationcontroller 28 a outputs an instruction to the display controller 26 a toreflect the content of operation in the viewer 24A in step S102.

The operation controller 28 a then judges in step S103 whether asynchronization setting with another viewer is set.

If the user has set a synchronization setting between the document-1displayed by the viewer 24A and the document-2 displayed by the viewer24B (YES in step S103), the operation controller 28 a outputs thecontent of operation to the inter-process sender 32 a in step S104.

Then, in step S105, the inter-process sender 32 a outputs the content ofoperation to the inter-process receiver 34 b of the viewer 24B.

Then, in step S106, the inter-process receiver 34 b outputs the receivedcontent of operation to the communication interpreter 30 b.

In step S107, the communication interpreter 30 b interprets the contentof operation and outputs the interpreted content to the operationcontroller 28 b.

In step S108, the operation controller 28 b outputs an instruction tothe display controller 26 b in accordance with the content of operation.In step S109, the display controller 26 b reflects the content ofoperation in the viewer 24B.

2.2 Page-Turning Processing

FIGS. 9A and 9B illustrate synchronize processing executed when thecontent of operation is page turning.

In FIG. 9A, when a user places a mouse cursor on a portion indicatingthe thickness of the document-1 displayed in the perspective displaymode by the viewer 24A, an icon 247 indicating a page number isdisplayed in accordance with the position of the portion indicating thethickness of the document-1. In FIG. 9A, the first page of thedocument-1 is displayed at the topmost position, and also, “3”indicating the third page of the document-1 is displayed as the icon247. The first page of the document-2 displayed in the perspectivedisplay mode by the viewer 24B is also displayed at the topmostposition.

FIG. 9B illustrates an example of the screen when the user has clickedthe icon 247 of the document-1 in the state shown in FIG. 9A. Theoperation controller 28 a of the viewer 24A outputs a page-turninginstruction to the display controller 26 a in accordance with theoperation performed on the icon 247 by the user. In response to thisinstruction, the display controller 26 a displays the third page of thedocument-1 at the topmost position. The operation controller 28 a alsooutputs the content of page-turning operation to the viewer 24B by usingthe inter-process sender 32 a. The operation controller 28 b of theviewer 24B then outputs a page-turning instruction to the displaycontroller 26 b, and in response to this instruction, the displaycontroller 26 b displays the third page of the document-2 at the topmostposition. In this manner, the page-turning operation performed by usingthe viewer 24A is reflected in the operation by the viewer 24B, and theoperation of the viewer 24A and that of the viewer 24B can besynchronized with each other. The page-turning information alsoindicates the page to be displayed at the topmost position of thedocument-2, that is, the third page. The page to be displayed at thetopmost position of the document-2 is the same page of the document-1.

2.3 Scroll Processing

FIGS. 10A and 10B illustrate synchronize processing executed when thecontent of operation is scrolling.

In FIG. 10A, the third page of the document-1 is displayed at thetopmost position by the viewer 24A, and the third page of the document-2is displayed at the topmost position by the viewer 24B. In this state, auser scrolls through the document-1 displayed in the perspective displaymode by the viewer 24A.

FIG. 10B illustrates an example of the screen when the user has scrolledthrough the document-1 in the state shown in FIG. 10A. The operationcontroller 28 a of the viewer 24A outputs a scrolling instruction to thedisplay controller 26 a in accordance with the scroll operationperformed by the user. In response to this instruction, the displaycontroller 26 a displays the document-1 through which the user hasscrolled. The operation controller 28 a also outputs the content ofscroll operation to the viewer 24B by using the inter-process sender 32a. The operation controller 28 b of the viewer 24B outputs a scrollinginstruction to the display controller 26 b, and in response to thisinstruction, the display controller 26 b displays the third page of thedocument-2. The scrolling amount and direction for the document-2 arethe same as those for the document-1. In this manner, the scrolloperation performed by using the viewer 24A is reflected in theoperation by the viewer 24B, and the operation of the viewer 24A andthat of the viewer 24B can be synchronized with each other.

2.4 Zoom-in or Zoom-Out Processing

FIGS. 11A and 11B illustrate synchronize processing executed when thecontent of operation is zoom-in or zoom-out operation.

In FIG. 11A, the third page of the document-1 is displayed at thetopmost position by the viewer 24A, and the third page of the document-2is displayed at the topmost position by the viewer 24B. In this state,the user changes the magnification factor for the document-1 displayedin the perspective display mode by the viewer 24A and performs zoom-inoperation, for example.

FIG. 11B illustrates an example of the screen when the user has zoomedin on the document-1 in the state shown in FIG. 11A. The operationcontroller 28 a of the viewer 24A outputs a zoom-in instruction to thedisplay controller 26 a in accordance with the zoom-in operationperformed by the user. In response to this instruction, the displaycontroller 26 a displays the zoomed-in document-1. The operationcontroller 28 a also outputs the content of zoom-in operation to theviewer 24B by using the inter-process sender 32 a. The operationcontroller 28 b of the viewer 24B outputs a zoom-in instruction to thedisplay controller 26 b, and in response to this instruction, thedisplay controller 26 b displays the third page of the document-2 zoomedin with the same magnification factor. In this manner, the zoom-in orzoom-out operation performed by using the viewer 24A is reflected inthat by the viewer 24B, and the operation of the viewer 24A and that ofthe viewer 24B can be synchronized with each other.

3. Synchronization Cancel Processing

Synchronizing the operation of the viewer 24A and that of the viewer 24Bwith each other may enhance the user operability. Conversely, suchsynchronize operation may decrease the user operability in some cases.

One example of such cases is that a user has minimized the size of thedocument-2 displayed by the viewer 24B. In this case, if the operationof the viewer 24A is synchronized with that of the viewer 24B, operationperformed by the viewer 24A, such as page-turning operation or zoom-inor zoom-out operation, is automatically reflected in the document-2although the user does not intend to use the document-2.

Another example is that a user has reduced the display area of thedocument-2 displayed by the viewer 24B by changing the size of thedocument-2 or by shifting the position of the document-2 to one side ofthe viewer 24B. In this manner, when the display area of the document-2is reduced to a certain threshold or smaller, if the operation of theviewer 24A is synchronized with that of the viewer 24B, operationperformed by the viewer 24A, such as page-turning operation or zoom-inor zoom-out operation, is automatically reflected in the document-2although the user does not intend to use the document-2. When the viewer24B is located at the back of the viewer 24A and the document-2 ishidden behind the document-1, synchronize operation may also decreasethe user operability.

To deal with such a situation, in this exemplary embodiment, asynchronization setting between the viewers 24A and 24B is temporarilycanceled, so that one viewer can perform operation independently withoutinfluencing operation by the other viewer.

3.1 Page-turning Processing when Document Size is Minimized

FIG. 12A illustrates a state in which the third page of the document-1is displayed at the topmost position of the viewer 24A, while the thirdpage of the document-2 is displayed at the topmost position of theviewer 24B. In this state, a user minimizes the size of the document-2by operating a specific icon, for example.

FIG. 12B illustrates a state in which the size of the document-2 isminimized. In this state, the user clicks an icon displayed on a portionindicating the thickness of the document-1, such as the icon 247 shownin FIG. 9A, to perform page-turning operation on the document-1. Then,the seventh page of the document-1, for example, is displayed at thetopmost position of the viewer 24A.

If the size of the document-2 is not minimized but is the normal size,the operation of the viewer 24A is synchronized with that of the viewer24B and page-turning operation is also performed on the document-2 inthe viewer 24B, as shown in FIG. 9B. However, since the size of thedocument-2 is minimized in the viewer 24B, a synchronization settingbetween the viewers 24A and 24B is canceled and page-turning operationis not performed in the viewer 24B. In FIG. 12B, the cross mark (X)indicates that a synchronization setting between the viewers 24A and 24Bis canceled. The operation controller 28 b receives the content ofoperation (page-turning operation) performed by the viewer 24A from thecommunication interpreter 30 b, but upon detecting that the size of thedocument-2 is minimized, it disables the content of operation andcancels a synchronization setting with the viewer 24A without outputtinga page-turning instruction to the display controller 26 b.

When the user returns the size of the document-2 to the normal size inthe state in FIG. 12B, the document-2 is still maintained in theprevious state in which the third page is displayed at the topmostposition (state in FIG. 12A), as shown in FIG. 12C. If a synchronizationsetting with the viewer 24A were maintained, the seventh page of thedocument-2 would be displayed at the topmost position of the viewer 24B.

When the user performs page-turning operation on the document-1 by usingthe viewer 24A in the state in FIG. 12C, synchronizing between theviewers 24A and 24B restarts because the size of the document-2 is nolonger minimized. Upon detecting that the size of the document-2 is notminimized, the operation controller 28 b receives the content ofoperation (page-turning operation) performed by the viewer 24A from thecommunication interpreter 30 b and outputs an instruction to the displaycontroller 26 b in accordance with the content of operation. At thistime, the user does not need to set a synchronization setting again,such as that shown in FIGS. 5 and 6.

3.2 Zoom-In or Zoom-Out Processing when Document Size is Minimized

FIG. 13A illustrates a state in which the third page of the document-1is displayed at the topmost position of the viewer 24A, while the thirdpage of the document-2 is displayed at the topmost position of theviewer 24B. In this state, a user minimizes the size of the document-2.

FIG. 13B illustrates a state in which the size of the document-2 isminimized. In this state, the user zooms in on the document-1 by usingthe viewer 24A.

In this case, if the size of the document-2 is not minimized but is thenormal size, the operation of the viewer 24A is synchronized with thatof the viewer 24B and zoom-in operation is also performed on thedocument-2, as shown in FIG. 11B. However, since the size of thedocument-2 is minimized in the viewer 24B, a synchronization settingbetween the viewers 24A and 24B is canceled and zoom-in operation is notperformed in the viewer 24B. In FIG. 13B, the cross mark (X) indicatesthat a synchronization setting between the viewers 24A and 24B iscanceled. The operation controller 28 b receives the content ofoperation (zoom-in operation) performed by the viewer 24A from thecommunication interpreter 30 b, but upon detecting that the size of thedocument-2 is minimized, it disables the content of operation andcancels a synchronization setting with the viewer 24A without outputtinga zoom-in instruction to the display controller 26 b.

When the user returns the size of the document-2 to the normal size inthe state in FIG. 13B, the document-2 is still maintained in theprevious state in which the document-2 is displayed with the same sizeas that in FIG. 13A, as shown in FIG. 13C.

When the user performs zoom-in operation on the document-1 by using theviewer 24A in the state in FIG. 13C, synchronizing between the viewers24A and 24B restarts because the size of the document-2 is no longerminimized. Upon detecting that the size of the document-2 is notminimized, the operation controller 28 b receives the content ofoperation (zoom-in operation) performed by the viewer 24A from thecommunication interpreter 30 b and outputs an instruction to the displaycontroller 26 b in accordance with the content of operation. At thistime, the user does not need to set a synchronization setting again,such as that shown in FIGS. 5 and 6.

Likewise, when the user performs scroll operation on the document-1 byusing the viewer 24A, if the size of the document-2 is minimized, scrolloperation is not performed in the viewer 24B.

3.3 Page-Turning Processing when Display Area is Equal to or Smallerthan Threshold

FIG. 14A illustrates a state in which the third page of the document-1is displayed at the topmost position of the viewer 24A, while the thirdpage of the document-2 is displayed at the topmost position of theviewer 24B. In this state, a user reduces the display area of thedocument-2 by shifting it to one side of the viewer 24B.

FIG. 14B illustrates a state in which the display area of the document-2is reduced. In this state, the user clicks an icon displayed on aportion indicating the thickness of the document-1, such as the icon 247shown in FIG. 9A, to perform page-turning operation on the document-1.Then, the seventh page of the document-1, for example, is displayed atthe topmost position of the viewer 24A.

In this case, if the display area of the document-2 exceeds a certainthreshold, the operation of the viewer 24A is synchronized with that ofthe viewer 24B and page-turning operation is also performed on thedocument-2, as shown in FIG. 9B. However, since the display area of thedocument-2 is reduced to reach the threshold or smaller in the viewer24B, a synchronization setting between the viewers 24A and 24B iscanceled and page-turning operation is not performed in the viewer 24B.In FIG. 14B, the cross mark (X) indicates that a synchronization settingbetween the viewers 24A and 24B is canceled. The operation controller 28b receives the content of operation (page-turning operation) performedby the viewer 24A from the communication interpreter 30 b, but upondetecting that the display area of the document-2 is reduced to reachthe threshold or smaller, it disables the content of operation andcancels a synchronization setting with the viewer 24A without outputtinga page-turning instruction to the display controller 26 b. The thresholdmay be about 30 to 50% of the area for one page of the document-2.However, this is only an example. The threshold may be retained in theoperation controller 28 b as a default or may be adjustable by a user toa suitable value.

When the user returns the display area of the document-2 to the normalsize in the state in FIG. 14B, the document-2 is still maintained in theprevious state in which the third page is displayed at the topmostposition (state in FIG. 14A), as shown in FIG. 14C.

When the user performs page-turning operation on the document-1 by usingthe viewer 24A in the state in FIG. 14C, synchronizing between theviewers 24A and 24B restarts because the display area of the document-2exceeds the threshold. Upon detecting that the display area of thedocument-2 exceeds the threshold, the operation controller 28 b receivesthe content of operation (page-turning operation) performed by theviewer 24A from the communication interpreter 30 b and outputs apage-turning instruction to the display controller 26 b in accordancewith the content of operation.

3.4 Scroll Processing when Display Area is Equal to or Smaller thanThreshold

FIG. 15A illustrates a state in which the third page of the document-1is displayed at the topmost position of the viewer 24A, while the thirdpage of the document-2 is displayed at the topmost position of theviewer 24B. In this state, a user reduces the display area of thedocument-2 by shifting it to one side of the viewer 24B.

FIG. 15B illustrates a state in which the display area of the document-2is reduced. In this state, the user performs scroll operation on thedocument-1 by using the viewer 24A.

In this case, if the display area of the document-2 exceeds a certainthreshold, the operation of the viewer 24A is synchronized with that ofthe viewer 24B and scroll operation is also performed on the document-2,as shown in FIG. 10B. However, since the display area of the document-2is reduced to reach the threshold or smaller in the viewer 24B, asynchronization setting between the viewers 24A and 24B is canceled andscroll operation is not performed in the viewer 24B. In FIG. 15B, thecross mark (X) indicates that a synchronization setting between theviewers 24A and 24B is canceled. The operation controller 28 b receivesthe content of operation (scroll operation) performed by the viewer 24Afrom the communication interpreter 30 b, but upon detecting that thedisplay area of the document-2 is reduced to reach the threshold orsmaller, it disables the content of operation and cancels asynchronization setting with the viewer 24A without outputting ascrolling instruction to the display controller 26 b.

When the user returns the display area of the document-2 to the normalsize in the state in FIG. 15B, the document-2 is still maintained in theprevious state in FIG. 15A, as shown in FIG. 15C.

When the user performs scroll operation on the document-1 by using theviewer 24A in the state in FIG. 15C, synchronizing between the viewers24A and 24B restarts because the display area of the document-2 exceedsthe threshold. Upon detecting that the display area of the document-2exceeds the threshold, the operation controller 28 b receives thecontent of operation (scroll operation) performed by the viewer 24A fromthe communication interpreter 30 b and outputs a scrolling instructionto the display controller 26 b in accordance with the content ofoperation.

Likewise, when the user performs zoom-in or zoom-out operation on thedocument-1 by using the viewer 24A, if the display area of thedocument-2 is equal to or smaller than a threshold, zoom-in or zoom-outoperation is not performed in the viewer 24B.

3.5 Page-Turning Processing when Viewer is Located Behind Another Viewer

FIG. 16A illustrates a state in which the third page of the document-1is displayed at the topmost position of the viewer 24A, while the thirdpage of the document-2 is displayed at the topmost position of theviewer 24B. In this case, the viewer 24B is located behind the viewer24A.

In the state shown in FIG. 16A, the user clicks an icon displayed on aportion indicating the thickness of the document-1, such as the icon 247shown in FIG. 9A, to perform page-turning operation on the document-1.Then, the seventh page of the document-1, for example, is displayed atthe topmost position of the viewer 24A, as shown in FIG. 16B.

In this case, if the viewers 24A and 24B are displayed side by side, theoperation of the viewer 24A is synchronized with that of the viewer 24Band page-turning operation is also performed on the document-2, as shownin FIG. 9B. However, since the viewer 24B is hidden behind the viewer24A, a synchronization setting between the viewers 24A and 24B iscanceled and page-turning operation is not performed in the viewer 24B.In FIG. 16B, the cross mark (X) indicates that a synchronization settingbetween the viewers 24A and 24B is canceled. The operation controller 28b receives the content of operation (page-turning operation) performedby the viewer 24A from the communication interpreter 30 b, but upondetecting that the viewer 24B is located behind the viewer 24A, itdisables the content of operation and cancels a synchronization settingwith the viewer 24A without outputting a page-turning instruction to thedisplay controller 26 b.

When the user changes the position of the viewer 24B in the state inFIG. 16B such that the viewers 24A and 24B are displayed side by side,the document-2 is still maintained in the previous state in which thethird page is displayed at the topmost position, as shown in FIG. 16C.

When the user performs page-turning operation on the document-1 by usingthe viewer 24A in the state in FIG. 16C, synchronizing between theviewers 24A and 24B restarts because the viewer 24B is no longer locatedbehind the viewer 24A. Upon detecting that the viewer 24B is not locatedbehind the viewer 24A, the operation controller 28 b receives thecontent of operation (page-turning operation) performed by the viewer24A from the communication interpreter 30 b and outputs a page-turninginstruction to the display controller 26 b in accordance with thecontent of operation. Regarding whether the viewer 24B is located behindthe viewer 24A, the operation controller 28 b may judge whether theviewer 24B is positioned behind (or at the back of) the viewer 24A andwhether the degree by which the viewers 24A and 24B overlap each otheris equal to or greater than a threshold (70%, for example). Even if partof the viewer 24B is located behind the viewer 24A, if the degree bywhich the viewers 24A and 24B overlap each other is smaller than thethreshold and the major part of the viewer 24B is seen, as shown in FIG.16C, the synchronization state is maintained. Likewise, even if part ofthe viewer 24B is located behind the viewer 24A, if the display area ofthe document-2 exceeds a threshold, the synchronization state ismaintained.

3.6 Processing Flowchart

FIG. 17 is a flowchart illustrating processing according to theexemplary embodiment.

In step S201, the operation controller 28 a judges whether a user hasperformed operation by using the operation unit 14.

If the user has performed operation (YES in step S201), the operationcontroller 28 a outputs an instruction to the display controller 26 a toreflect the content of operation in the viewer 24A in step S202.

The operation controller 28 a then judges in step S203 whether asynchronization setting with another viewer is set. If a synchronizationsetting with another viewer is not set (NO in step S203), the viewers24A and 24B are operated independently of each other.

If the user has set a synchronization setting between the document-1displayed by the viewer 24A and the document-2 displayed by the viewer24B (YES in step S203), the operation controller 28 a judges in stepS204 whether the size of one of the viewers 24A and 24B is minimized. Ifthe size of one of the viewers 24A and 24B is minimized (YES in stepS204), the operation controller 28 a cancels a synchronization settingwhich is found to be set in step S203 so as to operate the viewers 24Aand 24B independently.

If neither of the size of the viewer 24A nor that of the viewer 24B isminimized (NO in step S204), the operation controller 28 a judges instep S205 whether the display area of the document-1 or the document-2is equal to or smaller than a certain threshold. If the display area ofthe document-1 or the document-2 is equal to or smaller than thethreshold (YES in step S205), the operation controller 28 a cancels asynchronization setting which is found to be set in step S203 so as tooperate the viewers 24A and 24B independently.

If the display areas of both of the document-1 and the document-2 aregreater than the threshold (NO in step S205), the operation controller28 a outputs the content of operation to the inter-process sender 32 ain step S206.

Then, in step S207, the inter-process sender 32 a outputs the content ofoperation to the inter-process receiver 34 b of the viewer 24B.

Then, in step S208, the inter-process receiver 34 b outputs the receivedcontent of operation to the communication interpreter 30 b.

In step S209, the communication interpreter 30 b interprets the contentof operation and outputs the interpreted content to the operationcontroller 28 b.

In step S210, the operation controller 28 b outputs an instruction tothe display controller 26 b in accordance with the content of operation.In step S211, the display controller 26 b reflects the content ofoperation in the viewer 24B.

The exemplary embodiment has been discussed above. However, theinvention is not restricted to this exemplary embodiment, and variousmodifications may be made. Some modified examples will be describedbelow.

First Modified Example

In the exemplary embodiment, the two viewers 24A and 24B aresynchronized with each other. FIG. 6 shows that, however, three or moredocuments displayed by three or more viewers may be synchronized withone another. In this case, if at least one of the three or moresynchronized documents is not being used, a synchronization setting withthe viewer displaying this document is canceled.

It is now assumed that document-1, document-2, document-3, anddocument-4 are displayed by viewers 24. If document-1, document-2, anddocument-3 are synchronized with one another and if document-3 is notbeing used, such as if the size of document-3 is minimized, asynchronization setting with document-3 is canceled, and synchronizationbetween document-1 and document-2 is maintained. That is, if a userperforms page-turning operation on document-1, page-turning operation isalso performed on document-2 but is not performed on document-3.

Second Modified Example

In the exemplary embodiment, when the document-1 is displayed in theperspective display mode by the viewer 24A and the document-2 isdisplayed in the perspective display mode by the viewer 24B, the viewers24A and 24B are synchronized with each other. However, when thedocument-1 is displayed in the continuous display mode by the viewer 24Aand the document-2 is displayed in the continuous display mode by theviewer 24B, the viewers 24A and 24B may be synchronized with each other.Alternatively, when the document-1 is displayed in the perspectivedisplay mode by the viewer 24A and the document-2 is displayed in thecontinuous display mode by the viewer 24B, the viewers 24A and 24B maybe synchronized with each other. In such cases, too, when one of theviewers 24A and 24B is not being used, a synchronization setting betweenthe viewers 24A and 24B is canceled.

Third Modified Example

In the exemplary embodiment, if the viewer 24A is not being used, forexample, the operation controller 28 a cancels a synchronization settingwith the viewer 24B by not outputting the content of operation to theoperation controller 28 b via the inter-process sender 32 a and theinter-process receiver 34 b. Alternatively, a synchronization settingbetween the viewers 24A and 24B may be canceled in the following manner.The operation controller 28 a outputs the content of operation to theoperation controller 28 b via the inter-process sender 32 a and theinter-process receiver 34 b, but the operation controller 28 b does notoutput the content of operation to the display controller 26 b if it hasreceived information from the operation controller 28 a that the viewer24A is not being used, such as that the size of the viewer 24A isminimized.

Fourth Modified Example

In the exemplary embodiment, when one of the viewers 24A and 24B is notbeing used, a synchronization setting between the viewers 24A and 24B iscanceled. Examples of a state in which one of the viewers 24A and 24B isnot being used are that the size of one of the viewers 24A and 24B isminimized and that the display area of a document displayed by one ofthe viewers 24A and 24B is equal to or smaller than a certain threshold.However, these are only examples. Upon detecting another state in whicha viewer or a document is not being used, a synchronization setting mayalso be canceled. For example, even when the size of a viewer is notminimized and the display area of a document displayed by the viewerexceeds a certain threshold, if no operation has been performed on thedocument for a certain time, a synchronization setting may also becanceled.

Fifth Modified Example

In the exemplary embodiment, when one of the viewers 24A and 24B is notbeing used, a synchronization setting between the viewers 24A and 24B iscanceled. Information indicating whether a synchronization setting isset or canceled may be displayed at a predetermined position of thedisplay 16 so that a user can visually check whether a synchronizationsetting is set or canceled. For example, synchronized viewers may bedisplayed in the same color, and when a synchronization settingtherebetween is canceled, the viewers may be displayed in differentcolors. When a synchronization setting is canceled, a popup message,such as “a synchronization setting is temporarily canceled”, may bedisplayed.

The foregoing description of the exemplary embodiment of the presentinvention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Obviously, many modificationsand variations will be apparent to practitioners skilled in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention and its practical applications, therebyenabling others skilled in the art to understand the invention forvarious embodiments and with the various modifications as are suited tothe particular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. An information processing apparatus comprising: adisplay that displays a first document in a first window and alsodisplays a second document in a second window; a setter that sets asynchronization setting between the first and second documents; and asynchronization controller that executes an operation performed on oneof the first and second documents also on the other one of the first andsecond documents when a synchronization setting is set by the setter andthat cancels the synchronization setting when one of the first andsecond documents is in a first state in which the corresponding one ofthe first and second documents is not being used and restarts thesynchronization setting when the corresponding one of the first andsecond documents is changed from the first state to a second state inwhich the corresponding one of the first and second documents is beingused.
 2. The information processing apparatus according to claim 1,wherein the first state is a state in which a size of one of the firstand second documents is minimized.
 3. The information processingapparatus according to claim 1, wherein the first state is a state inwhich a display area of one of the first and second documents is equalto or smaller than a threshold.
 4. The information processing apparatusaccording to claim 1, wherein the first state is a state in which one ofthe first and second documents is positioned behind the other one of thefirst and second documents.
 5. The information processing apparatusaccording to claim 1, wherein the operation is at least one of a scrolloperation, a zoom-in or zoom-out operation, and a page-turningoperation.
 6. The information processing apparatus according to claim 1,wherein the first and second documents are displayed in a perspectivedisplay mode.
 7. The information processing apparatus according to claim1, wherein the first and second documents are displayed in a continuousdisplay mode.
 8. The information processing apparatus according to claim1, wherein the first document is displayed in a perspective display modeand the second document is displayed in a continuous display mode. 9.The information processing apparatus according to claim 1, wherein thesynchronization controller displays information indicating whether asynchronization setting is set or canceled.
 10. A non-transitorycomputer readable medium storing a program causing a computer to executea process, the process comprising: displaying a first document in afirst window and also displaying a second document in a second window;setting a synchronization setting between the first and seconddocuments; and executing an operation performed on one of the first andsecond documents also on the other one of the first and second documentswhen a synchronization setting is set, and canceling the synchronizationsetting when one of the first and second documents is in a first statein which the corresponding one of the first and second documents is notbeing used and restarting the synchronization setting when thecorresponding one of the first and second documents is changed from thefirst state to a second state in which the corresponding one of thefirst and second documents is being used.
 11. An information processingapparatus comprising: display means for displaying a first document in afirst window and also displaying a second document in a second window;setting means for setting a synchronization setting between the firstand second documents; and synchronization control means for executing anoperation performed on one of the first and second documents also on theother one of the first and second documents when a synchronizationsetting is set by the setting means and for canceling thesynchronization setting when one of the first and second documents is ina first state in which the corresponding one of the first and seconddocuments is not being used and restarting the synchronization settingwhen the corresponding one of the first and second documents is changedfrom the first state to a second state in which the corresponding one ofthe first and second documents is being used.